home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
8bitfiles.net/archives
/
archives.tar
/
archives
/
compuserve-file-archive
/
09 Application Software
/
GC1.SDA
/
TRNSFR LOCATIONS
(
.txt
)
< prev
Wrap
Commodore BASIC
|
2019-04-13
|
4KB
|
169 lines
100 REM\ TRANSFER LOCATIONS PROGRAM
200 REM\ WRITTEN BY KURT BRANDON
300 DIMX$(300),SD$(300)
400 POKE53281,1:POKE53280,7:POKE646,0
500 XR=PEEK(186):NL=14:BF$=" ":RT$=CHR$(13)
600 MD$=""
700 PRINT"[147] TRANSFER LOCATIONS"
800 INPUT" MERGE FILE DRIVE";MF
900 IFMF<8ORMF>11THENPRINT"[145][145][145][145]":GOTO800
1000 INPUT" LOCATIONS FILE DRIVE";DN
1100 IFDN<8ORDN>11THENPRINT"[145][145]":GOTO1000
1200 MB$="W":OPEN15,DN,15,"I0":OPEN14,MF,15
1300 OPEN2,MF,2,"MERGE FILE,S,R"
1400 INPUT#14,EN,ET$,ET,ES:CLOSE2
1500 IFEN=62THEN4200
1600 PRINT"[147] MERGE FILE EXISTS"
1700 PRINT" CHOOSE ONE"
1800 PRINT" 1) READ IT"
1900 PRINT" 2) SCRATCH IT"
2000 PRINT" 3) APPEND TO IT"
2100 PRINT" 4) QUIT"
2200 CN=0:INPUT" CHOICE";CN:CN=ABS(INT(CN))
2300 IFCN<1ORCN>4THENPRINT"[145][145][145]":GOTO2200
2400 ONCNGOTO2500,4000,4100,15000
2500 RC=0:PRINT"[147]":OPEN2,MF,2,"MERGE FILE,S,R"
2600 GET#2,A$,A$,A$,A$:IFST=>64THEN PRINT" MERGE FILE IS EMPTY":GOTO3600
2700 CLOSE2:OPEN2,MF,2,"MERGE FILE,S,R"
2800 GOSUB20000:INPUT#2,PL$,LA$,LO$:RC=RC+1
2900 PRINT""PL$:PRINT" "LA$:PRINT" "LO$
3000 IFPEEK(653)<>0THEN3000
3100 GETA$:IFA$="Q"THENWAIT203,64:GOTO3600
3200 IFST=0THENFORZ=1TO150:NEXT: GOTO2800
3300 PRINT:PRINT" [195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]"
3400 PRINT" "RC"RECORDS"
3500 PRINT" [195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195]":PRINT
3600 CLOSE2
3700 POKE198,0:PRINT" - ANY KEY TO EXIT -"
3800 GETA$:IFA$=""THEN3800
3900 GOTO1600
4000 PRINT#14,"S0:MERGE FILE":MB$="W":GOTO4200
4100 MB$="A"
4200 PRINT"[147] SELECT SEARCH MODE"
4300 PRINT" 1[144] MANUAL SEARCH"
4400 PRINT" 2[144] AUTO SEARCH FOR TEXT STRING"
4500 PRINT" 3[144] QUIT"
4600 A$="":INPUT" CHOICE";A$:IFA$=""THEN15100
4700 IFA$<"1"ORA$>"3"THENPRINT"[145][145][145][145]":GOTO4600
4800 IFA$="2"THEN8600
4900 IFA$="3"THEN15000
5000 :
5100 REM\ MANUAL SELECT
5200 PRINT"[147] SELECT FILE TO LOAD"
5300 PRINT" -- RETURN[144] TO QUIT --"
5400 F$="":INPUT" ";F$:IFF$=""THENCLOSE2:GOTO15100
5500 IFF$<"A"ORF$>"Z"THENPRINT"[145][145]":GOTO5400
5600 FORI=1TO300:X$(I)="":NEXT
5700 OPEN8,DN,8,F$:RN=1:GOSUB12400:GOSUB12400:INPUT#8,MN
5800 FORRN=2TOMN:GOSUB12400:GOSUB12400:GOSUB20000:INPUT#8,PL$,LA$,LO$
5900 X$(RN-1)=PL$+RT$+LA$+RT$+LO$
6000 NEXT:CLOSE8:MN=MN-1
6100 OPEN2,MF,2,"MERGE FILE,S,"+MB$:MB$="A"
6200 FORI=1TO300:SD$(I)=" ":NEXT
6300 PO=1:A=1:B=NL:GOSUB15500:KK=1:GOSUB8000
6400 :
6500 GETA$:IFA$=""THEN6500
6600 IFA$=""ANDX$(A+NL-1)=""THENA=1:B=NL:GOSUB15500:KK=1:GOSUB8000:GOTO6500
6700 IFA$=""THENA=A+NL:B=B+NL:GOSUB15500:KK=1:GOSUB8000
6800 IFA$="[157]"THENIFA=1THEN6500
6900 IFA$="[157]"THENA=A-NL:B=B-NL:GOSUB15500:KK=1:GOSUB8000:GOTO6500
7000 IFA$=""THENIFKK=NLTHEN6500
7100 IFA$=""THENKK=KK+1:GOSUB8000:GOTO6500
7200 IFA$="[145]"THENIFKK=1THEN6500
7300 IFA$="[145]"THENKK=KK-1:GOSUB8000:GOTO6500
7400 IFA$=RT$THENSD$(A+KK-1)=CHR$(32-10*(ASC(SD$(A+KK-1))=32)):GOSUB8100
7500 IFA$="[133]"THENFORYY=ATOB:SD$(YY)="*":NEXT:GOSUB15500:GOSUB8000:GOTO6500
7600 IFA$="[137]"THENFORYY=ATOB:SD$(YY)=" ":NEXT:GOSUB15500:GOSUB8000:GOTO6500
7700 IFA$="R"THENCLOSE2:GOTO5200
7800 IFA$="W"THEN8200
7900 GOTO6500
8000 PRINTLEFT$(MD$,KS)" ":PRINTLEFT$(MD$,KK+1)">":KS=KK+1:RETURN
8100 PRINT"":FORZ=ATOB:PRINT""SD$(Z):NEXT:RETURN
8200 FORI=1TOMN
8300 GOSUB20000:IFSD$(I)="*"THENPRINT#2,X$(I)
8400 NEXT:CLOSE2:MB$="A":GOTO5200
8500 :
8600 PRINT"[147] TEXT SEARCH MODE"
8700 GOSUB11400
8800 PRINT" \[144] WILL CLOSE MERGE"
8900 PRINT" FILE AND RETURN TO MENU"
9000 INPUT" SEARCH STRING";CF$
9100 IFCF$="\"THEN15100
9200 PRINT" SEARCH STRING IS: "CF$"[146]"
9300 INPUT" CORRECT (Y/N) Y[157][157][157]";CO$
9400 IFCO$<>"N"ANDCO$<>"Y"THENPRINT"[145][145][145]":GOTO9300
9500 IFCO$="N"THEN9000
9600 OPEN2,MF,2,"MERGE FILE,S,"+MB$
9700 FORI=SFTOEF
9800 OPEN8,DN,8,CHR$(I)
9900 RN=1:GOSUB12400:GOSUB12400:INPUT#8,MN
10000 FORRN=2TOMN
10100 GOSUB12400:GOSUB12400:GOSUB20000:INPUT#8,MS$,LA$,LO$
10200 GOSUB14000:IFRV=1THEN10600
10300 GETA$:IFA$="\"THEN15100
10400 PRINT""MS$"[144]":PRINT"[145][145]":GOTO10900
10500 IFA$="\"THEN15100
10600 PRINT""MS$"[144]":PRINT#2,MS$
10700 PRINT#2,LA$
10800 PRINT#2,LO$
10900 NEXT
11000 CLOSE8
11100 NEXT
11200 PRINT"[145]":PRINTBF$
11300 GOTO15100
11400 INPUT" STARTING AT FILE A [157][157][157][157][157]";SF$
11500 IFLEN(SF$)<>1THENPRINT"[145][145]":GOTO11400
11600 IFSF$<"A"ORSF$>"Z"THENPRINT"[145][145]":GOTO11400
11700 INPUT" ENDING AT FILE Z [157][157][157][157][157]";EF$
11800 IFLEN(EF$)<>1THENPRINT"[145][145]":GOTO11700
11900 IFEF$<"A"OREF$>"Z"THENPRINT"[145][145]":GOTO11700
12000 SF=ASC(SF$):EF=ASC(EF$):RETURN
12100 :
12200 :
12300 REM\ POSITION/ERROR SUB
12400 RH=INT(RN/256):RL=RN-(256*RH)
12500 PRINT#15,"P"+CHR$(96+8)+CHR$(RL)+CHR$(RH)+CHR$(1)
12600 INPUT#15,E,E$,AA,B
12700 IF E=0ORE=50THENRETURN
12800 PRINTE;E$;AA;B:CLOSE8:CLOSE15:END
12900 :
13000 :
13100 REM\ STRING COMPARE SUB
13200 REM VALUES RETURNED IN RV
13300 REM 0 - SUBSTRING NOT FOUND
13400 REM 1 - SUBSTRING FOUND
13500 REM 2 - SUBSTRING LONGER THAN MAIN STRING
13600 :
13700 REM CF$=SUBSTRING TO BE COMPARED
13800 REM MS$=MAIN STRING
13900 :
14000 RV=0:A=LEN(CF$):B=LEN(MS$)
14100 IFA>BTHENRV=2:RETURN
14200 IFA<>BTHEN14500
14300 IFMS$=CF$THENRV=1
14400 RETURN
14500 D=B-A+1
14600 FORC=1TOD
14700 IFCF$=MID$(MS$,C,A)THENRV=1:C=D
14800 NEXT:RETURN
14900 :
15000 FORI=1TO15:CLOSEI:NEXT:LOAD"LOAD & RUN",XR
15100 FORI=1TO15:CLOSEI:NEXT:GOTO1200
15200 :
15300 :
15400 REM\ DISPLAY SUB
15500 PRINT"[147]"
15600 FORZ=ATOB
15700 PRINT""SD$(Z);LEFT$(X$(Z),30)
15800 NEXT
15900 PRINT"- - - - - - - - - - - - - - - - -"
16000 PRINT"CRSR LEFT/RIGHT [144]PAGE"
16100 PRINT" CRSR UP/DOWN [144]MOVE POINTER"
16200 PRINT" RETURN[144] TOGGLE SELECTION"
16300 PRINT" F1[144] SELECT ALL ON SCREEN"
16400 PRINT" F2[144] DESELECT ALL ON SCREEN"
16500 PRINT" R[144] FILE SELECT SCREEN"
16600 PRINT" W[144] WRITE TO MERGE FILE":RETURN
20000 IFPEEK(52)<PEEK(50)+3THENYX=FRE(0)
20010 RETURN